前一篇我們說明什麼是Asynchronous、為什麼需要它以及優點所在。
但這樣就夠了嗎?
顯然是不夠的,因此接下來會進一步用例子探討Asynchronous的特性和它的缺點。
好了~讓我們開始吧!!
還記得在前一篇的時候,我們講了Asynchronous是什麼對吧?
Asynchronous指的是應用程式可以在不等待任務完成的情況下繼續進行,任務完成後會以某種方式通知程式。
是不是覺得抽象,不懂什麼意思,讓我們用例子解釋:
記得前幾天Synchronous舉的銀行開戶的例子,假如你要去銀行開戶,將要辦理的相關文件交給櫃台,從填寫申請表→完成申請開戶,用syn的方式處理,必須等待每一步完成才能進行下一步。
如果你要在銀行同時辦理多件事情,那麼第二件事情得等第一件完成才能處理,一天的時間就這麼浪費掉了。
而Asyn不一樣,讓我們用圖說明:
同樣是去銀行要辦理開戶與提款兩件事情。
同樣辦理開戶要四個步驟,且每一步都要等待,跟syn不同的地方在於:
當你提交申請表 或是 提交相關資料並開始等待時,不用傻傻地站在那等,可以先去提款。
等提完款 或 櫃台人員通知你檢查/審核完畢的時候再回去進行下一步。
這樣做的好處不會浪費時間在空等,可以處理其餘的事情。
當然,Asynchronous也有缺點,初步歸納兩點:
Asynchronous在現代的應用程式已經是不可貨缺的方法,在微服務的世界也是如此。但需注意不要過度設計造成程式的複雜度太高,後續難以維護與排除。
下一篇會統整Synchronous與Asynchronous之間的區別。
好了~~今天就到這邊!!